package org.hospital.service;

import java.util.List;

import org.hospital.entity.Employee;
import org.hospital.entity.Permission;
import org.hospital.entity.Position;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public interface PermissionService {
	
	Position getPositionByid(int positionId);
	
	List<Permission> getPermissionByName(String name);
	
	/**
	 * 获取职位拥有的权限
	 * @param positionId
	 * @return
	 */
	List<Permission> getPermissionByPosition(int positionId);
	
	/**
     * 检测职位是否有足够权限
     * @param positionId  职位编号
     * @param permissionName  权限名称
     * @param rank 职位等级
     * @return true:足够；false:权限不足
     */
    Boolean isPermisionEnough(int positionId,String permissionName,int rank);

    /**
     * 添加职位
     * @param ps
     * @param permissionIds  职位权限
     * @return
     */
    Boolean createPosition(Position ps,JSONArray permissionIds);
    
    /**
     * 修改职位信息
     * @param ps
     * @param permissionIds 职位权限
     * @return
     */
    Boolean alterPosition(Position ps,JSONArray permissionIds);
    
    /**
     * 获取所有职位信息
     * @return
     */
    JSONArray getAllPosition();
    
    /**
     * 获取用户职位的权限
     * @param user
     * @return {xx:0,xx:1}
     */
    JSONObject getPermissionJO(Employee user);
    
    /**
     *  获取职位 的权限信息
     * @param positionId
     * @return [1,2,3,...]
     */
    JSONArray getPermissionByPositionId(int positionId);
}
